1,472 research outputs found

    Toward the validation of a literature classroom intervention to foster adolescents’ insight into human nature:an iterative design process

    Get PDF
    We report on the design process of a literature classroom intervention for 15-year-old students in the Netherlands, which aimed to foster their insight into human nature―insight into themselves, fictional others, and real-world others. Starting from a model of transformative reading, an exploration of the educational context, and a review of previous intervention studies, we designed an intervention in an iterative process. We evaluated the validity and practicality of two versions of the intervention. From teacher and student data, we concluded that the validity and practicality of the first version were suboptimal and identified various suggestions for improvement. In a second iteration, the initial design principles were reoperationalized. Based on these eoperationalized principles, we designed a second version of the intervention, which was found to be sufficiently valid and practical. In addition, the second iteration led to specifiying the initial design principles, by formulating subprinciples for operationalization in the classroom. All in all, this study demonstrates that an iterative design process is needed to arrive at a valid and practical intervention, and that this process may have the potential to further specify initial design principles

    Lazy Stream Programming in Prolog

    Get PDF
    In recent years, stream processing has become a prominent approach for incrementally handling large amounts of data, with special support and libraries in many programming languages. Unfortunately, support in Prolog has so far been lacking and most existing approaches are ad-hoc. To remedy this situation, we present lazy stream generators as a unified Prolog interface for stateful computations on both finite and infinite sequences of data that are produced incrementally through I/O and/or algorithmically. We expose stream generators to the application programmer in two ways: 1) through an abstract sequence manipulation API, convenient for defining custom generators, and 2) as idiomatic lazy lists, compatible with many existing list predicates. We define an algebra of stream generator operations that extends Prolog via an embedded language interpreter, provides a compact notation for composing generators and supports moving between the two isomorphic representations. As a special instance, we introduce answer stream generators that encapsulate the work of coroutining first-class logic engines and support interoperation between forward recursive AND-streams and backtracking-generated OR-streams. Keywords: lazy stream generators, lazy lists, first-class logic engines, stream combinators, AND-stream / OR-stream interoperation, Prolog extensionsComment: In Proceedings ICLP 2019, arXiv:1909.0764

    Structured Traversal of Search Trees in Constraint-logic Object-oriented Programming

    Full text link
    In this paper, we propose an explicit, non-strict representation of search trees in constraint-logic object-oriented programming. Our search tree representation includes both the non-deterministic and deterministic behaviour during execution of an application. Introducing such a representation facilitates the use of various search strategies. In order to demonstrate the applicability of our approach, we incorporate explicit search trees into the virtual machine of the constraint-logic object-oriented programming language Muli. We then exemplarily implement three search algorithms that traverse the search tree on-demand: depth-first search, breadth-first search, and iterative deepening depth-first search. In particular, the last two strategies allow for a complete search, which is novel in constraint-logic object-oriented programming and highlights our main contribution. Finally, we compare the implemented strategies using several benchmarks.Comment: Part of DECLARE 19 proceeding

    Haskell Type Constraints Unleashed

    Get PDF
    The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful features, leading to an expressive language of type terms. In contrast, constraints over types have received much less attention, creating an imbalance in the expressivity of the type system. In this paper, we rectify the imbalance, transferring familiar type-level constructs, synonyms and families, to the language of constraints, providing a symmetrical set of features at the type-level and constraint-level. We introduce constraint synonyms and constraint families, and illustrate their increased expressivity for improving the utility of polymorphic EDSLs in Haskell, amongst other examples. We provide a discussion of the semantics of the new features relative to existing type system features and similar proposals, including details of terminatio
    • …
    corecore